home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_emacs.idb / usr / freeware / info / gnus-6.z / gnus-6
Encoding:
GNU Info File  |  1998-10-28  |  49.2 KB  |  1,313 lines

  1. This is Info file ../info/gnus, produced by Makeinfo-1.63 from the
  2. input file gnus.texi.
  3.  
  4.    This file documents Gnus, the GNU Emacs newsreader.
  5.  
  6.    Copyright (C) 1995,96 Free Software Foundation, Inc.
  7.  
  8.    Permission is granted to make and distribute verbatim copies of this
  9. manual provided the copyright notice and this permission notice are
  10. preserved on all copies.
  11.  
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided also
  14. that the entire resulting derived work is distributed under the terms
  15. of a permission notice identical to this one.
  16.  
  17.    Permission is granted to copy and distribute translations of this
  18. manual into another language, under the above conditions for modified
  19. versions.
  20.  
  21. 
  22. File: gnus,  Node: SOUP Groups,  Next: SOUP Replies,  Prev: SOUP Commands,  Up: SOUP
  23.  
  24. SOUP Groups
  25. ...........
  26.  
  27.    `nnsoup' is the backend for reading SOUP packets.  It will read
  28. incoming packets, unpack them, and put them in a directory where you
  29. can read them at leisure.
  30.  
  31.    These are the variables you can use to customize its behavior:
  32.  
  33. `nnsoup-tmp-directory'
  34.      When `nnsoup' unpacks a SOUP packet, it does it in this directory.
  35.      (`/tmp/' by default.)
  36.  
  37. `nnsoup-directory'
  38.      `nnsoup' then moves each message and index file to this directory.
  39.      The default is `~/SOUP/'.
  40.  
  41. `nnsoup-replies-directory'
  42.      All replies will stored in this directory before being packed into
  43.      a reply packet.  The default is `~/SOUP/replies/"'.
  44.  
  45. `nnsoup-replies-format-type'
  46.      The SOUP format of the replies packets.  The default is `?n'
  47.      (rnews), and I don't think you should touch that variable.  I
  48.      probably shouldn't even have documented it.  Drats!  Too late!
  49.  
  50. `nnsoup-replies-index-type'
  51.      The index type of the replies packet.  The is `?n', which means
  52.      "none".  Don't fiddle with this one either!
  53.  
  54. `nnsoup-active-file'
  55.      Where `nnsoup' stores lots of information.  This is not an "active
  56.      file" in the `nntp' sense; it's an Emacs Lisp file.  If you lose
  57.      this file or mess it up in any way, you're dead.  The default is
  58.      `~/SOUP/active'.
  59.  
  60. `nnsoup-packer'
  61.      Format string command for packing a reply SOUP packet.  The default
  62.      is `tar cf - %s | gzip > $HOME/Soupin%d.tgz'.
  63.  
  64. `nnsoup-unpacker'
  65.      Format string command for unpacking incoming SOUP packets.  The
  66.      default is `gunzip -c %s | tar xvf -'.
  67.  
  68. `nnsoup-packet-directory'
  69.      Where `nnsoup' will look for incoming packets.  The default is
  70.      `~/'.
  71.  
  72. `nnsoup-packet-regexp'
  73.      Regular expression matching incoming SOUP packets.  The default is
  74.      `Soupout'.
  75.  
  76. 
  77. File: gnus,  Node: SOUP Replies,  Prev: SOUP Groups,  Up: SOUP
  78.  
  79. SOUP Replies
  80. ............
  81.  
  82.    Just using `nnsoup' won't mean that your postings and mailings end
  83. up in SOUP reply packets automagically.  You have to work a bit more
  84. for that to happen.
  85.  
  86.    The `nnsoup-set-variables' command will set the appropriate
  87. variables to ensure that all your followups and replies end up in the
  88. SOUP system.
  89.  
  90.    In specific, this is what it does:
  91.  
  92.      (setq gnus-inews-article-function 'nnsoup-request-post)
  93.      (setq send-mail-function 'nnsoup-request-mail)
  94.  
  95.    And that's it, really.  If you only want news to go into the SOUP
  96. system you just use the first line.  If you only want mail to be SOUPed
  97. you use the second.
  98.  
  99. 
  100. File: gnus,  Node: Combined Groups,  Prev: Other Sources,  Up: Select Methods
  101.  
  102. Combined Groups
  103. ===============
  104.  
  105.    Gnus allows combining a mixture of all the other group types into
  106. bigger groups.
  107.  
  108. * Menu:
  109.  
  110. * Virtual Groups::     Combining articles from many groups.
  111. * Kibozed Groups::     Looking through parts of the newsfeed for articles.
  112.  
  113. 
  114. File: gnus,  Node: Virtual Groups,  Next: Kibozed Groups,  Up: Combined Groups
  115.  
  116. Virtual Groups
  117. --------------
  118.  
  119.    An "nnvirtual group" is really nothing more than a collection of
  120. other groups.
  121.  
  122.    For instance, if you are tired of reading many small group, you can
  123. put them all in one big group, and then grow tired of reading one big,
  124. unwieldy group.  The joys of computing!
  125.  
  126.    You specify `nnvirtual' as the method.  The address should be a
  127. regexp to match component groups.
  128.  
  129.    All marks in the virtual group will stick to the articles in the
  130. component groups.  So if you tick an article in a virtual group, the
  131. article will also be ticked in the component group from whence it came.
  132. (And vice versa--marks from the component groups will also be shown in
  133. the virtual group.)
  134.  
  135.    Here's an example `nnvirtual' method that collects all Andrea Dworkin
  136. newsgroups into one, big, happy newsgroup:
  137.  
  138.      (nnvirtual "^alt\\.fan\\.andrea-dworkin$\\|^rec\\.dworkin.*")
  139.  
  140.    The component groups can be native or foreign; everything should work
  141. smoothly, but if your computer explodes, it was probably my fault.
  142.  
  143.    Collecting the same group from several servers might actually be a
  144. good idea if users have set the Distribution header to limit
  145. distribution.  If you would like to read `soc.motss' both from a server
  146. in Japan and a server in Norway, you could use the following as the
  147. group regexp:
  148.  
  149.      "^nntp+some.server.jp:soc.motss$\\|^nntp+some.server.no:soc.motss$"
  150.  
  151.    This should work kinda smoothly--all articles from both groups should
  152. end up in this one, and there should be no duplicates.  Threading (and
  153. the rest) will still work as usual, but there might be problems with the
  154. sequence of articles.  Sorting on date might be an option here (*note
  155. Selecting a Group::..
  156.  
  157.    One limitation, however--all groups that are included in a virtual
  158. group has to be alive (i.e., subscribed or unsubscribed).  Killed or
  159. zombie groups can't be component groups for `nnvirtual' groups.
  160.  
  161.    If the `nnvirtual-always-rescan' is non-`nil', `nnvirtual' will
  162. always scan groups for unread articles when entering a virtual group.
  163. If this variable is `nil' (which is the default) and you read articles
  164. in a component group after the virtual group has been activated, the
  165. read articles from the component group will show up when you enter the
  166. virtual group.  You'll also see this effect if you have two virtual
  167. groups that contain the same component group.  If that's the case, you
  168. should set this variable to `t'.  Or you can just tap `M-g' on the
  169. virtual group every time before you enter it--it'll have much the same
  170. effect.
  171.  
  172. 
  173. File: gnus,  Node: Kibozed Groups,  Prev: Virtual Groups,  Up: Combined Groups
  174.  
  175. Kibozed Groups
  176. --------------
  177.  
  178.    "Kibozing" is defined by OED as "grepping through (parts of) the
  179. news feed".  `nnkiboze' is a backend that will do this for you.  Oh
  180. joy!  Now you can grind any NNTP server down to a halt with useless
  181. requests!  Oh happiness!
  182.  
  183.    To create a kibozed group, use the `G k' command in the group buffer.
  184.  
  185.    The address field of the `nnkiboze' method is, as with `nnvirtual',
  186. a regexp to match groups to be "included" in the `nnkiboze' group.
  187. There most similarities between `nnkiboze' and `nnvirtual' ends.
  188.  
  189.    In addition to this regexp detailing component groups, an `nnkiboze'
  190. group must have a score file to say what articles that are to be
  191. included in the group (*note Scoring::.).
  192.  
  193.    You must run `M-x nnkiboze-generate-groups' after creating the
  194. `nnkiboze' groups you want to have.  This command will take time.  Lots
  195. of time.  Oodles and oodles of time.  Gnus has to fetch the headers from
  196. all the articles in all the components groups and run them through the
  197. scoring process to determine if there are any articles in the groups
  198. that are to be part of the `nnkiboze' groups.
  199.  
  200.    Please limit the number of component groups by using restrictive
  201. regexps.  Otherwise your sysadmin may become annoyed with you, and the
  202. NNTP site may throw you off and never let you back in again.  Stranger
  203. things have happened.
  204.  
  205.    `nnkiboze' component groups do not have to be alive--they can be
  206. dead, and they can be foreign.  No restrictions.
  207.  
  208.    The generation of an `nnkiboze' group means writing two files in
  209. `nnkiboze-directory', which is `~/News/' by default.  One contains the
  210. NOV header lines for all the articles in the group, and the other is an
  211. additional `.newsrc' file to store information on what groups that have
  212. been searched through to find component articles.
  213.  
  214.    Articles that are marked as read in the `nnkiboze' group will have
  215. their NOV lines removed from the NOV file.
  216.  
  217. 
  218. File: gnus,  Node: Scoring,  Next: Various,  Prev: Select Methods,  Up: Top
  219.  
  220. Scoring
  221. *******
  222.  
  223.    Other people use "kill files", but we here at Gnus Towers like
  224. scoring better than killing, so we'd rather switch than fight.  They do
  225. something completely different as well, so sit up straight and pay
  226. attention!
  227.  
  228.    All articles have a default score (`gnus-summary-default-score'),
  229. which is 0 by default.  This score may be raised or lowered either
  230. interactively or by score files.  Articles that have a score lower than
  231. `gnus-summary-mark-below' are marked as read.
  232.  
  233.    Gnus will read any "score files" that apply to the current group
  234. before generating the summary buffer.
  235.  
  236.    There are several commands in the summary buffer that insert score
  237. entries based on the current article.  You can, for instance, ask Gnus
  238. to lower or increase the score of all articles with a certain subject.
  239.  
  240.    There are two sorts of scoring entries: Permanent and temporary.
  241. Temporary score entries are self-expiring entries.  Any entries that are
  242. temporary and have not been used for, say, a week, will be removed
  243. silently to help keep the sizes of the score files down.
  244.  
  245. * Menu:
  246.  
  247. * Summary Score Commands::   Adding score entries for the current group.
  248. * Group Score Commands::     General score commands.
  249. * Score Variables::          Customize your scoring.  (My, what terminology).
  250. * Score File Format::        What a score file may contain.
  251. * Score File Editing::       You can edit score files by hand as well.
  252. * Adaptive Scoring::         Big Sister Gnus *knows* what you read.
  253. * Followups To Yourself::    Having Gnus notice when people answer you.
  254. * Scoring Tips::             How to score effectively.
  255. * Reverse Scoring::          That problem child of old is not problem.
  256. * Global Score Files::       Earth-spanning, ear-splitting score files.
  257. * Kill Files::               They are still here, but they can be ignored.
  258. * GroupLens::                Getting predictions on what you like to read.
  259.  
  260. 
  261. File: gnus,  Node: Summary Score Commands,  Next: Group Score Commands,  Up: Scoring
  262.  
  263. Summary Score Commands
  264. ======================
  265.  
  266.    The score commands that alter score entries do not actually modify
  267. real score files.  That would be too inefficient.  Gnus maintains a
  268. cache of previously loaded score files, one of which is considered the
  269. "current score file alist".  The score commands simply insert entries
  270. into this list, and upon group exit, this list is saved.
  271.  
  272.    The current score file is by default the group's local score file,
  273. even if no such score file actually exists.  To insert score commands
  274. into some other score file (eg. `all.SCORE'), you must first make this
  275. score file the current one.
  276.  
  277.    General score commands that don't actually change the score file:
  278.  
  279. `V s'
  280.      Set the score of the current article (`gnus-summary-set-score').
  281.  
  282. `V S'
  283.      Display the score of the current article
  284.      (`gnus-summary-current-score').
  285.  
  286. `V t'
  287.      Display all score rules that have been used on the current article
  288.      (`gnus-score-find-trace').
  289.  
  290. `V R'
  291.      Run the current summary through the scoring process
  292.      (`gnus-summary-rescore').  This might be useful if you're playing
  293.      around with your score files behind Gnus' back and want to see the
  294.      effect you're having.
  295.  
  296. `V a'
  297.      Add a new score entry, and allow specifying all elements
  298.      (`gnus-summary-score-entry').
  299.  
  300. `V c'
  301.      Make a different score file the current
  302.      (`gnus-score-change-score-file').
  303.  
  304. `V e'
  305.      Edit the current score file (`gnus-score-edit-current-scores').
  306.      You will be popped into a `gnus-score-mode' buffer (*note Score
  307.      File Editing::.).
  308.  
  309. `V f'
  310.      Edit a score file and make this score file the current one
  311.      (`gnus-score-edit-file').
  312.  
  313. `V F'
  314.      Flush the score cahe (`gnus-score-flush-cache').  This is useful
  315.      after editing score files.
  316.  
  317. `V C'
  318.      Customize a score file in a visually pleasing manner
  319.      (`gnus-score-customize').
  320.  
  321. `I C-i'
  322.      Increase the score of the current article
  323.      (`gnus-summary-raise-score').
  324.  
  325. `L C-l'
  326.      Lower the score of the current article
  327.      (`gnus-summary-lower-score').
  328.  
  329.    The rest of these commands modify the local score file.
  330.  
  331. `V m'
  332.      Prompt for a score, and mark all articles with a score below this
  333.      as read (`gnus-score-set-mark-below').
  334.  
  335. `V E'
  336.      Expunge all articles with a score below the default score (or the
  337.      numeric prefix) (`gnus-score-set-expunge-below').
  338.  
  339.    The keystrokes for actually making score entries follow a very
  340. regular pattern, so there's no need to list all the commands.
  341. (Hundreds of them.)
  342.  
  343.   1. The first key is either `I' (upper case i) for increasing the score
  344.      or `L' for lowering the score.
  345.  
  346.   2. The second key says what header you want to score on.  The
  347.      following keys are available:
  348.     `a'
  349.           Score on the author name.
  350.  
  351.     `s'
  352.           Score on the subject line.
  353.  
  354.     `x'
  355.           Score on the Xref line--i.e., the cross-posting line.
  356.  
  357.     `t'
  358.           Score on thread--the References line.
  359.  
  360.     `d'
  361.           Score on the date.
  362.  
  363.     `l'
  364.           Score on the number of lines.
  365.  
  366.     `i'
  367.           Score on the Message-ID.
  368.  
  369.     `f'
  370.           Score on followups.
  371.  
  372.     `b'
  373.           Score on the body.
  374.  
  375.     `h'
  376.           Score on the head.
  377.  
  378.   3. The third key is the match type.  Which match types are legal
  379.      depends on what headers you are scoring on.
  380.  
  381.     `strings'
  382.          `e'
  383.                Exact matching.
  384.  
  385.          `s'
  386.                Substring matching.
  387.  
  388.          `f'
  389.                Fuzzy matching.
  390.  
  391.          `r'
  392.                Regexp matching
  393.  
  394.     `date'
  395.          `b'
  396.                Before date.
  397.  
  398.          `a'
  399.                At date.
  400.  
  401.          `n'
  402.                This date.
  403.  
  404.     `number'
  405.          `<'
  406.                Less than number.
  407.  
  408.          `='
  409.                Equal to number.
  410.  
  411.          `>'
  412.                Greater than number.
  413.  
  414.   4. The fourth and final key says whether this is a temporary (i.e.,
  415.      expiring) score entry, or a permanent (i.e., non-expiring) score
  416.      entry, or whether it is to be done immediately, without adding to
  417.      the score file.
  418.     `t'
  419.           Temporary score entry.
  420.  
  421.     `p'
  422.           Permanent score entry.
  423.  
  424.     `i'
  425.           Immediately scoring.
  426.  
  427.  
  428.    So, let's say you want to increase the score on the current author
  429. with exact matching permanently: `I a e p'.  If you want to lower the
  430. score based on the subject line, using substring matching, and make a
  431. temporary score entry: `L s s t'.  Pretty easy.
  432.  
  433.    To make things a bit more complicated, there are shortcuts.  If you
  434. use a capital letter on either the second or third keys, Gnus will use
  435. defaults for the remaining one or two keystrokes.  The defaults are
  436. "substring" and "temporary".  So `I A' is the same as `I a s t', and `I
  437. a R' is the same as `I a r t'.
  438.  
  439.    The `gnus-score-mimic-keymap' says whether these commands will
  440. pretend they are keymaps or not.
  441.  
  442. 
  443. File: gnus,  Node: Group Score Commands,  Next: Score Variables,  Prev: Summary Score Commands,  Up: Scoring
  444.  
  445. Group Score Commands
  446. ====================
  447.  
  448.    There aren't many of these as yet, I'm afraid.
  449.  
  450. `W f'
  451.      Gnus maintains a cache of score alists to avoid having to reload
  452.      them all the time.  This command will flush the cache
  453.      (`gnus-score-flush-cache').
  454.  
  455. 
  456. File: gnus,  Node: Score Variables,  Next: Score File Format,  Prev: Group Score Commands,  Up: Scoring
  457.  
  458. Score Variables
  459. ===============
  460.  
  461. `gnus-use-scoring'
  462.      If `nil', Gnus will not check for score files, and will not, in
  463.      general, do any score-related work.  This is `t' by default.
  464.  
  465. `gnus-kill-killed'
  466.      If this variable is `nil', Gnus will never apply score files to
  467.      articles that have already been through the kill process.  While
  468.      this may save you lots of time, it also means that if you apply a
  469.      kill file to a group, and then change the kill file and want to
  470.      run it over you group again to kill more articles, it won't work.
  471.      You have to set this variable to `t' to do that.  (It is `t' by
  472.      default.)
  473.  
  474. `gnus-kill-files-directory'
  475.      All kill and score files will be stored in this directory, which is
  476.      initialized from the `SAVEDIR' environment variable by default.
  477.      This is `~/News/' by default.
  478.  
  479. `gnus-score-file-suffix'
  480.      Suffix to add to the group name to arrive at the score file name
  481.      (`SCORE' by default.)
  482.  
  483. `gnus-score-uncacheable-files'
  484.      All score files are normally cached to avoid excessive re-loading
  485.      of score files.  However, if this might make you Emacs grow big and
  486.      bloated, so this regexp can be used to weed out score files that
  487.      are unlikely to be needed again.  It would be a bad idea to deny
  488.      caching of `all.SCORE', while it might be a good idea to not cache
  489.      `comp.infosystems.www.authoring.misc.ADAPT'.  In fact, this
  490.      variable is `ADAPT$' by default, so no adaptive score files will
  491.      be cached.
  492.  
  493. `gnus-save-score'
  494.      If you have really complicated score files, and do lots of batch
  495.      scoring, then you might set this variable to `t'.  This will make
  496.      Gnus save the scores into the `.newsrc.eld' file.
  497.  
  498. `gnus-score-interactive-default-score'
  499.      Score used by all the interactive raise/lower commands to
  500.      raise/lower score with.  Default is 1000, which may seem
  501.      excessive, but this is to ensure that the adaptive scoring scheme
  502.      gets enough room to play with.  We don't want the small changes
  503.      from the adaptive scoring to overwrite manually entered data.
  504.  
  505. `gnus-summary-default-score'
  506.      Default score of an article, which is 0 by default.
  507.  
  508. `gnus-score-over-mark'
  509.      Mark (in the third column) used for articles with a score over the
  510.      default.  Default is `+'.
  511.  
  512. `gnus-score-below-mark'
  513.      Mark (in the third column) used for articles with a score below the
  514.      default.  Default is `-'.
  515.  
  516. `gnus-score-find-score-files-function'
  517.      Function used to find score files for the current group.  This
  518.      function is called with the name of the group as the argument.
  519.  
  520.      Predefined functions available are:
  521.     `gnus-score-find-single'
  522.           Only apply the group's own score file.
  523.  
  524.     `gnus-score-find-bnews'
  525.           Apply all score files that match, using bnews syntax.  This
  526.           is the default.  For instance, if the current group is
  527.           `gnu.emacs.gnus', `all.emacs.all.SCORE', `not.alt.all.SCORE'
  528.           and `gnu.all.SCORE' would all apply.  In short, the instances
  529.           of `all' in the score file names are translated into `.*', and
  530.           then a regexp match is done.
  531.  
  532.           This means that if you have some score entries that you want
  533.           to apply to all groups, then you put those entries in the
  534.           `all.SCORE' file.
  535.  
  536.     `gnus-score-find-hierarchical'
  537.           Apply all score files from all the parent groups.  This means
  538.           that you can't have score files like `all.SCORE' or
  539.           `all.emacs.SCORE', but you can have `SCORE',  `comp.SCORE' and
  540.           `comp.emacs.SCORE'.
  541.  
  542.      This variable can also be a list of functions.  In that case, all
  543.      these functions will be called, and all the returned lists of
  544.      score files will be applied.  These functions can also return
  545.      lists of score alists directly.  In that case, the functions that
  546.      return these non-file score alists should probably be placed
  547.      before the "real" score file functions, to ensure that the last
  548.      score file returned is the local score file.  Phu.
  549.  
  550. `gnus-score-expiry-days'
  551.      This variable says how many days should pass before an unused
  552.      score file entry is expired.  If this variable is `nil', no score
  553.      file entries are expired.  It's 7 by default.
  554.  
  555. `gnus-update-score-entry-dates'
  556.      If this variable is non-`nil', matching score entries will have
  557.      their dates updated.  (This is how Gnus controls expiry--all
  558.      non-matching entries will become too old while matching entries
  559.      will stay fresh and young.)  However, if you set this variable to
  560.      `nil', even matching entries will grow old and will have to face
  561.      that oh-so grim reaper.
  562.  
  563. `gnus-score-after-write-file-function'
  564.      Function called with the name of the score file just written.
  565.  
  566. 
  567. File: gnus,  Node: Score File Format,  Next: Score File Editing,  Prev: Score Variables,  Up: Scoring
  568.  
  569. Score File Format
  570. =================
  571.  
  572.    A score file is an `emacs-lisp' file that normally contains just a
  573. single form.  Casual users are not expected to edit these files;
  574. everything can be changed from the summary buffer.
  575.  
  576.    Anyway, if you'd like to dig into it yourself, here's an example:
  577.  
  578.      (("from"
  579.        ("Lars Ingebrigtsen" -10000)
  580.        ("Per Abrahamsen")
  581.        ("larsi\\|lmi" -50000 nil R))
  582.       ("subject"
  583.        ("Ding is Badd" nil 728373))
  584.       ("xref"
  585.        ("alt.politics" -1000 728372 s))
  586.       ("lines"
  587.        (2 -100 nil <))
  588.       (mark 0)
  589.       (expunge -1000)
  590.       (mark-and-expunge -10)
  591.       (read-only nil)
  592.       (orphan -10)
  593.       (adapt t)
  594.       (files "/hom/larsi/News/gnu.SCORE")
  595.       (exclude-files "all.SCORE")
  596.       (local (gnus-newsgroup-auto-expire t)
  597.              (gnus-summary-make-false-root 'empty))
  598.       (eval (ding)))
  599.  
  600.    This example demonstrates absolutely everything about a score file.
  601.  
  602.    Even though this looks much like lisp code, nothing here is actually
  603. `eval'ed.  The lisp reader is used to read this form, though, so it has
  604. to be legal syntactically, if not semantically.
  605.  
  606.    Six keys are supported by this alist:
  607.  
  608. `STRING'
  609.      If the key is a string, it is the name of the header to perform the
  610.      match on.  Scoring can only be performed on these eight headers:
  611.      `From', `Subject', `References', `Message-ID', `Xref', `Lines',
  612.      `Chars' and `Date'.  In addition to these headers, there are three
  613.      strings to tell Gnus to fetch the entire article and do the match
  614.      on larger parts of the article: `Body' will perform the match on
  615.      the body of the article, `Head' will perform the match on the head
  616.      of the article, and `All' will perform the match on the entire
  617.      article.  Note that using any of these last three keys will slow
  618.      down group entry *considerably*.  The final "header" you can score
  619.      on is `Followup'.  These score entries will result in new score
  620.      entries being added for all follow-ups to articles that matches
  621.      these score entries.
  622.  
  623.      Following this key is a arbitrary number of score entries, where
  624.      each score entry has one to four elements.
  625.        1. The first element is the "match element".  On most headers
  626.           this will be a string, but on the Lines and Chars headers,
  627.           this must be an integer.
  628.  
  629.        2. If the second element is present, it should be a number--the
  630.           "score element".  This number should be an integer in the
  631.           neginf to posinf interval.  This number is added to the score
  632.           of the article if the match is successful.  If this element
  633.           is not present, the `gnus-score-interactive-default-score'
  634.           number will be used instead.  This is 1000 by default.
  635.  
  636.        3. If the third element is present, it should be a number--the
  637.           "date element".  This date says when the last time this score
  638.           entry matched, which provides a mechanism for expiring the
  639.           score entries.  It this element is not present, the score
  640.           entry is permanent.  The date is represented by the number of
  641.           days since December 31, 1 ce.
  642.  
  643.        4. If the fourth element is present, it should be a symbol--the
  644.           "type element".  This element specifies what function should
  645.           be used to see whether this score entry matches the article.
  646.           What match types that can be used depends on what header you
  647.           wish to perform the match on.
  648.          "From, Subject, References, Xref, Message-ID"
  649.                For most header types, there are the `r' and `R'
  650.                (regexp) as well as `s' and `S' (substring) types and
  651.                `e' and `E' (exact match) types.  If this element is not
  652.                present, Gnus will assume that substring matching should
  653.                be used.  `R' and `S' differ from the other two in that
  654.                the matches will be done in a case-sensitive manner.
  655.                All these one-letter types are really just abbreviations
  656.                for the `regexp', `string' and `exact' types, which you
  657.                can use instead, if you feel like.
  658.  
  659.          "Lines, Chars"
  660.                These two headers use different match types: `<', `>',
  661.                `=', `>=' and `<='.
  662.  
  663.          "Date"
  664.                For the Date header we have three match types: `before',
  665.                `at' and `after'.  I can't really imagine this ever
  666.                being useful, but, like, it would feel kinda silly not
  667.                to provide this function.  Just in case.  You never
  668.                know.  Better safe than sorry.  Once burnt, twice shy.
  669.                Don't judge a book by its cover.  Never not have sex on
  670.                a first date.
  671.  
  672.          "Head, Body, All"
  673.                These three match keys use the same match types as the
  674.                `From' (etc) header uses.
  675.  
  676.          "Followup"
  677.                This match key will add a score entry on all articles
  678.                that followup to some author.  Uses the same match types
  679.                as the `From' header uses.
  680.  
  681.          "Thread"
  682.                This match key will add a score entry on all articles
  683.                that are part of a thread.  Uses the same match types as
  684.                the `References' header uses.
  685.  
  686. `mark'
  687.      The value of this entry should be a number.  Any articles with a
  688.      score lower than this number will be marked as read.
  689.  
  690. `expunge'
  691.      The value of this entry should be a number.  Any articles with a
  692.      score lower than this number will be removed from the summary
  693.      buffer.
  694.  
  695. `mark-and-expunge'
  696.      The value of this entry should be a number.  Any articles with a
  697.      score lower than this number will be marked as read and removed
  698.      from the summary buffer.
  699.  
  700. `thread-mark-and-expunge'
  701.      The value of this entry should be a number.  All articles that
  702.      belong to a thread that has a total score below this number will
  703.      be marked as read and removed from the summary buffer.
  704.      `gnus-thread-score-function' says how to compute the total score
  705.      for a thread.
  706.  
  707. `files'
  708.      The value of this entry should be any number of file names.  These
  709.      files are assumed to be score files as well, and will be loaded
  710.      the same way this one was.
  711.  
  712. `exclude-files'
  713.      The clue of this entry should be any number of files.  This files
  714.      will not be loaded, even though they would normally be so, for
  715.      some reason or other.
  716.  
  717. `eval'
  718.      The value of this entry will be `eval'el.  This element will be
  719.      ignored when handling global score files.
  720.  
  721. `read-only'
  722.      Read-only score files will not be updated or saved.  Global score
  723.      files should feature this atom (*note Global Score Files::.).
  724.  
  725. `orphan'
  726.      The value of this entry should be a number.  Articles that do not
  727.      have parents will get this number added to their scores.  Imagine
  728.      you follow some high-volume newsgroup, like `comp.lang.c'.  Most
  729.      likely you will only follow a few of the threads, also want to see
  730.      any new threads.
  731.  
  732.      You can do this with the following two score file entries:
  733.  
  734.               (orphan -500)
  735.               (mark-and-expunge -100)
  736.  
  737.      When you enter the group the first time, you will only see the new
  738.      threads.  You then raise the score of the threads that you find
  739.      interesting (with `I T' or `I S'), and ignore (`C y') the rest.
  740.      Next time you enter the group, you will see new articles in the
  741.      interesting threads, plus any new threads.
  742.  
  743.      I.e. - the orphan score atom is for high-volume groups where there
  744.      exist a few interesting threads which can't be found automatically
  745.      by ordinary scoring rules.
  746.  
  747. `adapt'
  748.      This entry controls the adaptive scoring.  If it is `t', the
  749.      default adaptive scoring rules will be used.  If it is `ignore', no
  750.      adaptive scoring will be performed on this group.  If it is a
  751.      list, this list will be used as the adaptive scoring rules.  If it
  752.      isn't present, or is something other than `t' or `ignore', the
  753.      default adaptive scoring rules will be used.  If you want to use
  754.      adaptive scoring on most groups, you'd set
  755.      `gnus-use-adaptive-scoring' to `t', and insert an `(adapt ignore)'
  756.      in the groups where you do not want adaptive scoring.  If you only
  757.      want adaptive scoring in a few groups, you'd set
  758.      `gnus-use-adaptive-scoring' to `nil', and insert `(adapt t)' in
  759.      the score files of the groups where you want it.
  760.  
  761. `adapt-file'
  762.      All adaptive score entries will go to the file named by this
  763.      entry.  It will also be applied when entering the group.  This
  764.      atom might be handy if you want to adapt on several groups at
  765.      once, using the same adaptive file for a number of groups.
  766.  
  767. `local'
  768.      The value of this entry should be a list of `(VAR VALUE)' pairs.
  769.      Each VAR will be made buffer-local to the current summary buffer,
  770.      and set to the value specified.  This is a convenient, if somewhat
  771.      strange, way of setting variables in some groups if you don't like
  772.      hooks much.
  773.  
  774. 
  775. File: gnus,  Node: Score File Editing,  Next: Adaptive Scoring,  Prev: Score File Format,  Up: Scoring
  776.  
  777. Score File Editing
  778. ==================
  779.  
  780.    You normally enter all scoring commands from the summary buffer, but
  781. you might feel the urge to edit them by hand as well, so we've supplied
  782. you with a mode for that.
  783.  
  784.    It's simply a slightly customized `emacs-lisp' mode, with these
  785. additional commands:
  786.  
  787. `C-c C-c'
  788.      Save the changes you have made and return to the summary buffer
  789.      (`gnus-score-edit-done').
  790.  
  791. `C-c C-d'
  792.      Insert the current date in numerical format
  793.      (`gnus-score-edit-insert-date').  This is really the day number, if
  794.      you were wondering.
  795.  
  796. `C-c C-p'
  797.      The adaptive score files are saved in an unformatted fashion.  If
  798.      you intend to read one of these files, you want to "pretty print"
  799.      it first.  This command (`gnus-score-pretty-print') does that for
  800.      you.
  801.  
  802.    Type `M-x gnus-score-mode' to use this mode.
  803.  
  804.    `gnus-score-menu-hook' is run in score mode buffers.
  805.  
  806.    In the summary buffer you can use commands like `V f' and `V e' to
  807. begin editing score files.
  808.  
  809. 
  810. File: gnus,  Node: Adaptive Scoring,  Next: Followups To Yourself,  Prev: Score File Editing,  Up: Scoring
  811.  
  812. Adaptive Scoring
  813. ================
  814.  
  815.    If all this scoring is getting you down, Gnus has a way of making it
  816. all happen automatically--as if by magic.  Or rather, as if by
  817. artificial stupidity, to be precise.
  818.  
  819.    When you read an article, or mark an article as read, or kill an
  820. article, you leave marks behind.  On exit from the group, Gnus can sniff
  821. these marks and add score elements depending on what marks it finds.
  822. You turn on this ability by setting `gnus-use-adaptive-scoring' to `t'.
  823.  
  824.    To give you complete control over the scoring process, you can
  825. customize the `gnus-default-adaptive-score-alist' variable.  For
  826. instance, it might look something like this:
  827.  
  828.      (defvar gnus-default-adaptive-score-alist
  829.        '((gnus-unread-mark)
  830.          (gnus-ticked-mark (from 4))
  831.          (gnus-dormant-mark (from 5))
  832.          (gnus-del-mark (from -4) (subject -1))
  833.          (gnus-read-mark (from 4) (subject 2))
  834.          (gnus-expirable-mark (from -1) (subject -1))
  835.          (gnus-killed-mark (from -1) (subject -3))
  836.          (gnus-kill-file-mark)
  837.          (gnus-ancient-mark)
  838.          (gnus-low-score-mark)
  839.          (gnus-catchup-mark (from -1) (subject -1))))
  840.  
  841.    As you see, each element in this alist has a mark as a key (either a
  842. variable name or a "real" mark--a character).  Following this key is a
  843. arbitrary number of header/score pairs.  If there are no header/score
  844. pairs following the key, no adaptive scoring will be done on articles
  845. that have that key as the article mark.  For instance, articles with
  846. `gnus-unread-mark' in the example above will not get adaptive score
  847. entries.
  848.  
  849.    Each article can have only one mark, so just a single of these rules
  850. will be applied to each article.
  851.  
  852.    To take `gnus-del-mark' as an example--this alist says that all
  853. articles that have that mark (i.e., are marked with `D') will have a
  854. score entry added to lower based on the `From' header by -4, and
  855. lowered by `Subject' by -1.  Change this to fit your prejudices.
  856.  
  857.    If you have marked 10 articles with the same subject with
  858. `gnus-del-mark', the rule for that mark will be applied ten times.
  859. That means that that subject will get a score of ten times -1, which
  860. should be, unless I'm much mistaken, -10.
  861.  
  862.    The headers you can score on are `from', `subject', `message-id',
  863. `references', `xref', `lines', `chars' and `date'.  In addition, you
  864. can score on `followup', which will create an adaptive score entry that
  865. matches on the `References' header using the `Message-ID' of the
  866. current article, thereby matching the following thread.
  867.  
  868.    You can also score on `thread', which will try to score all articles
  869. that appear in a thread.  `thread' matches uses a `Message-ID' to match
  870. on the `References' header of the article.  If the match is made, the
  871. `Message-ID' of the article is added to the `thread' rule.  (Think
  872. about it.  I'd recommend two aspirins afterwards.)
  873.  
  874.    If you use this scheme, you should set the score file atom `mark' to
  875. something small--like -300, perhaps, to avoid having small random
  876. changes result in articles getting marked as read.
  877.  
  878.    After using adaptive scoring for a week or so, Gnus should start to
  879. become properly trained and enhance the authors you like best, and kill
  880. the authors you like least, without you having to say so explicitly.
  881.  
  882.    You can control what groups the adaptive scoring is to be performed
  883. on by using the score files (*note Score File Format::.).  This will
  884. also let you use different rules in different groups.
  885.  
  886.    The adaptive score entries will be put into a file where the name is
  887. the group name with `gnus-adaptive-file-suffix' appended.  The default
  888. is `ADAPT'.
  889.  
  890.    When doing adaptive scoring, substring or fuzzy matching would
  891. probably give you the best results in most cases.  However, if the
  892. header one matches is short, the possibility for false positives is
  893. great, so if the length of the match is less than
  894. `gnus-score-exact-adapt-limit', exact matching will be used.  If this
  895. variable is `nil', exact matching will always be used to avoid this
  896. problem.
  897.  
  898. 
  899. File: gnus,  Node: Followups To Yourself,  Next: Scoring Tips,  Prev: Adaptive Scoring,  Up: Scoring
  900.  
  901. Followups To Yourself
  902. =====================
  903.  
  904.    Gnus offers two commands for picking out the `Message-ID' header in
  905. the current buffer.  Gnus will then add a score rule that scores using
  906. this `Message-ID' on the `References' header of other articles.  This
  907. will, in effect, increase the score of all articles that respond to the
  908. article in the current buffer.  Quite useful if you want to easily note
  909. when people answer what you've said.
  910.  
  911. `gnus-score-followup-article'
  912.      This will add a score to articles that directly follow up your own
  913.      article.
  914.  
  915. `gnus-score-followup-thread'
  916.      This will add a score to all articles that appear in a thread
  917.      "below" your own article.
  918.  
  919.    These two functions are both primarily meant to be used in hooks like
  920. `gnus-inews-article-hook'.
  921.  
  922. 
  923. File: gnus,  Node: Scoring Tips,  Next: Reverse Scoring,  Prev: Followups To Yourself,  Up: Scoring
  924.  
  925. Scoring Tips
  926. ============
  927.  
  928. "Crossposts"
  929.      If you want to lower the score of crossposts, the line to match on
  930.      is the `Xref' header.
  931.           ("xref" (" talk.politics.misc:" -1000))
  932.  
  933. "Multiple crossposts"
  934.      If you want to lower the score of articles that have been
  935.      crossposted to more than, say, 3 groups:
  936.           ("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r))
  937.  
  938. "Matching on the body"
  939.      This is generally not a very good idea--it takes a very long time.
  940.      Gnus actually has to fetch each individual article from the
  941.      server.  But you might want to anyway, I guess.  Even though there
  942.      are three match keys (`Head', `Body' and `All'), you should choose
  943.      one and stick with it in each score file.  If you use any two,
  944.      each article will be fetched *twice*.  If you want to match a bit
  945.      on the `Head' and a bit on the `Body', just use `All' for all the
  946.      matches.
  947.  
  948. "Marking as read"
  949.      You will probably want to mark articles that has a score below a
  950.      certain number as read.  This is most easily achieved by putting
  951.      the following in your `all.SCORE' file:
  952.           ((mark -100))
  953.      You may also consider doing something similar with `expunge'.
  954.  
  955. "Negated character classes"
  956.      If you say stuff like `[^abcd]*', you may get unexpected results.
  957.      That will match newlines, which might lead to, well, The Unknown.
  958.      Say `[^abcd\n]*' instead.
  959.  
  960. 
  961. File: gnus,  Node: Reverse Scoring,  Next: Global Score Files,  Prev: Scoring Tips,  Up: Scoring
  962.  
  963. Reverse Scoring
  964. ===============
  965.  
  966.    If you want to keep just articles that have `Sex with Emacs' in the
  967. subject header, and expunge all other articles, you could put something
  968. like this in your score file:
  969.  
  970.      (("subject"
  971.        ("Sex with Emacs" 2))
  972.       (mark 1)
  973.       (expunge 1))
  974.  
  975.    So, you raise all articles that match `Sex with Emacs' and mark the
  976. rest as read, and expunge them to boot.
  977.  
  978. 
  979. File: gnus,  Node: Global Score Files,  Next: Kill Files,  Prev: Reverse Scoring,  Up: Scoring
  980.  
  981. Global Score Files
  982. ==================
  983.  
  984.    Sure, other newsreaders have "global kill files".  These are usually
  985. nothing more than a single kill file that applies to all groups, stored
  986. in the user's home directory.  Bah!  Puny, weak newsreaders!
  987.  
  988.    What I'm talking about here are Global Score Files.  Score files from
  989. all over the world, from users everywhere, uniting all nations in one
  990. big, happy score file union!  Ange-score!  New and untested!
  991.  
  992.    All you have to do to use other people's score files is to set the
  993. `gnus-global-score-files' variable.  One entry for each score file, or
  994. each score file directory.  Gnus will decide by itself what score files
  995. are applicable to which group.
  996.  
  997.    Say you want to use all score files in the
  998. `/ftp@ftp.some-where:/pub/score' directory and the single score file
  999. `/ftp@ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE':
  1000.  
  1001.      (setq gnus-global-score-files
  1002.            '("/ftp@ftp.ifi.uio.no:/pub/larsi/ding/score/soc.motss.SCORE"
  1003.              "/ftp@ftp.some-where:/pub/score/"))
  1004.  
  1005.    Simple, eh?  Directory names must end with a `/'.  These directories
  1006. are typically scanned only once during each Gnus session.  If you feel
  1007. the need to manually re-scan the remote directories, you can use the
  1008. `gnus-score-search-global-directories' command.
  1009.  
  1010.    Note that, at present, using this option will slow down group entry
  1011. somewhat.  (That is--a lot.)
  1012.  
  1013.    If you want to start maintaining score files for other people to use,
  1014. just put your score file up for anonymous ftp and announce it to the
  1015. world.  Become a retro-moderator!  Participate in the retro-moderator
  1016. wars sure to ensue, where retro-moderators battle it out for the
  1017. sympathy of the people, luring them to use their score files on false
  1018. premises!  Yay!  The net is saved!
  1019.  
  1020.    Here are some tips for the would-be retro-moderator, off the top of
  1021. my head:
  1022.  
  1023.    * Articles that are heavily crossposted are probably junk.
  1024.  
  1025.    * To lower a single inappropriate article, lower by `Message-ID'.
  1026.  
  1027.    * Particularly brilliant authors can be raised on a permanent basis.
  1028.  
  1029.    * Authors that repeatedly post off-charter for the group can safely
  1030.      be lowered out of existence.
  1031.  
  1032.    * Set the `mark' and `expunge' atoms to obliterate the nastiest
  1033.      articles completely.
  1034.  
  1035.    * Use expiring score entries to keep the size of the file down.  You
  1036.      should probably have a long expiry period, though, as some sites
  1037.      keep old articles for a long time.
  1038.  
  1039.    ... I wonder whether other newsreaders will support global score
  1040. files in the future.  *Snicker*.  Yup, any day now, newsreaders like
  1041. Blue Wave, xrn and 1stReader are bound to implement scoring.  Should we
  1042. start holding our breath yet?
  1043.  
  1044. 
  1045. File: gnus,  Node: Kill Files,  Next: GroupLens,  Prev: Global Score Files,  Up: Scoring
  1046.  
  1047. Kill Files
  1048. ==========
  1049.  
  1050.    Gnus still supports those pesky old kill files.  In fact, the kill
  1051. file entries can now be expiring, which is something I wrote before
  1052. Daniel Quinlan thought of doing score files, so I've left the code in
  1053. there.
  1054.  
  1055.    In short, kill processing is a lot slower (and I do mean *a lot*)
  1056. than score processing, so it might be a good idea to rewrite your kill
  1057. files into score files.
  1058.  
  1059.    Anyway, a kill file is a normal `emacs-lisp' file.  You can put any
  1060. forms into this file, which means that you can use kill files as some
  1061. sort of primitive hook function to be run on group entry, even though
  1062. that isn't a very good idea.
  1063.  
  1064.    XCNormal kill files look like this:
  1065.  
  1066.      (gnus-kill "From" "Lars Ingebrigtsen")
  1067.      (gnus-kill "Subject" "ding")
  1068.      (gnus-expunge "X")
  1069.  
  1070.    This will mark every article written by me as read, and remove them
  1071. from the summary buffer.  Very useful, you'll agree.
  1072.  
  1073.    Other programs use a totally different kill file syntax.  If Gnus
  1074. encounters what looks like a `rn' kill file, it will take a stab at
  1075. interpreting it.
  1076.  
  1077.    Two summary functions for editing a GNUS kill file:
  1078.  
  1079. `M-k'
  1080.      Edit this group's kill file (`gnus-summary-edit-local-kill').
  1081.  
  1082. `M-K'
  1083.      Edit the general kill file (`gnus-summary-edit-global-kill').
  1084.  
  1085.    Two group mode functions for editing the kill files:
  1086.  
  1087. `M-k'
  1088.      Edit this group's kill file (`gnus-group-edit-local-kill').
  1089.  
  1090. `M-K'
  1091.      Edit the general kill file (`gnus-group-edit-global-kill').
  1092.  
  1093.    Kill file variables:
  1094.  
  1095. `gnus-kill-file-name'
  1096.      A kill file for the group `soc.motss' is normally called
  1097.      `soc.motss.KILL'.  The suffix appended to the group name to get
  1098.      this file name is detailed by the `gnus-kill-file-name' variable.
  1099.      The "global" kill file (not in the score file sense of "global", of
  1100.      course) is called just `KILL'.
  1101.  
  1102. `gnus-kill-save-kill-file'
  1103.      If this variable is non-`nil', Gnus will save the kill file after
  1104.      processing, which is necessary if you use expiring kills.
  1105.  
  1106. `gnus-apply-kill-hook'
  1107.      A hook called to apply kill files to a group.  It is
  1108.      `(gnus-apply-kill-file)' by default.  If you want to ignore the
  1109.      kill file if you have a score file for the same group, you can set
  1110.      this hook to `(gnus-apply-kill-file-unless-scored)'.  If you don't
  1111.      want kill files to be processed, you should set this variable to
  1112.      `nil'.
  1113.  
  1114. `gnus-kill-file-mode-hook'
  1115.      A hook called in kill-file mode buffers.
  1116.  
  1117. 
  1118. File: gnus,  Node: GroupLens,  Prev: Kill Files,  Up: Scoring
  1119.  
  1120. GroupLens
  1121. =========
  1122.  
  1123.    GroupLens is a collaborative filtering system that helps you work
  1124. together with other people to find the quality news articles out of the
  1125. huge volume of news articles generated every day.
  1126.  
  1127.    To accomplish this the GroupLens system combines your opinions about
  1128. articles you have already read with the opinions of others who have done
  1129. likewise and gives you a personalized prediction for each unread news
  1130. article.  Think of GroupLens as a matchmaker.  GroupLens watches how you
  1131. rate articles, and finds other people that rate articles the same way.
  1132. Once it has found for you some people you agree with it tells you, in
  1133. the form of a prediction, what they thought of the article.  You can use
  1134. this prediction to help you decide whether or not you want to read the
  1135. article.
  1136.  
  1137. * Menu:
  1138.  
  1139. * Using GroupLens::          How to make Gnus use GroupLens.
  1140. * Rating Articles::          Letting GroupLens know how you rate articles.
  1141. * Displaying Predictions::   Displaying predictions given by GroupLens.
  1142. * GroupLens Variables::      Customizing GroupLens.
  1143.  
  1144. 
  1145. File: gnus,  Node: Using GroupLens,  Next: Rating Articles,  Up: GroupLens
  1146.  
  1147. Using GroupLens
  1148. ---------------
  1149.  
  1150.    To use GroupLens you must register a pseudonym with your local Better
  1151. Bit Bureau (BBB).  At the moment the only better bit in town is at
  1152. `http://www.cs.umn.edu/Research/GroupLens/bbb.html'.
  1153.  
  1154.    Once you have registered you'll need to set a couple of variables.
  1155.  
  1156. `gnus-use-grouplens'
  1157.      Setting this variable to a non-`nil' value will make Gnus hook into
  1158.      all the relevant GroupLens functions.
  1159.  
  1160. `grouplens-pseudonym'
  1161.      This variable should be set to the pseudonum you got when
  1162.      registering with the Better Bit Bureau.
  1163.  
  1164. `grouplens-newsgroups'
  1165.      A list of groups that you want to get GroupLens predictions for.
  1166.  
  1167.    Thats the minimum of what you need to get up and running with
  1168. GroupLens.  Once you've registered, GroupLens will start giving you
  1169. scores for articles based on the average of what other people think.
  1170. But, to get the real benefit of GroupLens you need to start rating
  1171. articles yourself.  Then the scores GroupLens gives you will be
  1172. personalized for you, based on how the people you usually agree with
  1173. have already rated.
  1174.  
  1175. 
  1176. File: gnus,  Node: Rating Articles,  Next: Displaying Predictions,  Prev: Using GroupLens,  Up: GroupLens
  1177.  
  1178. Rating Articles
  1179. ---------------
  1180.  
  1181.    In GroupLens, an article is rated on a scale from 1 to 5, inclusive.
  1182. Where 1 means something like this article is a waste of bandwidth and 5
  1183. means that the article was really good.  The basic question to ask
  1184. yourself is, "on a scale from 1 to 5 would I like to see more articles
  1185. like this one?"
  1186.  
  1187.    There are four ways to enter a rating for an article in GroupLens.
  1188.  
  1189. `r'
  1190.      This function will prompt you for a rating on a scale of one to
  1191.      five.
  1192.  
  1193. `k'
  1194.      This function will prompt you for a rating, and rate all the
  1195.      articles in the thread.  This is really useful for some of those
  1196.      long running giant threads in rec.humor.
  1197.  
  1198.    The next two commands, `n' and `,' take a numerical prefix to be the
  1199. score of the article you're reading.
  1200.  
  1201. `1-5 n'
  1202.      Rate the article and go to the next unread article.
  1203.  
  1204. `1-5 ,'
  1205.      Rate the article and go to the next unread article with the
  1206.      highest score.
  1207.  
  1208.    If you want to give the current article a score of 4 and then go to
  1209. the next article, just type `4 n'.
  1210.  
  1211. 
  1212. File: gnus,  Node: Displaying Predictions,  Next: GroupLens Variables,  Prev: Rating Articles,  Up: GroupLens
  1213.  
  1214. Displaying Predictions
  1215. ----------------------
  1216.  
  1217.    GroupLens makes a prediction for you about how much you will like a
  1218. news article.  The predictions from GroupLens are on a scale from 1 to
  1219. 5, where 1 is the worst and 5 is the best.  You can use the predictions
  1220. from GroupLens in one of three ways controlled by the variable
  1221. `gnus-grouplens-override-scoring'.
  1222.  
  1223.    There are three ways to display predictions in grouplens.  You may
  1224. choose to have the GroupLens scores contribute to, or override the
  1225. regular gnus scoring mechanism. override is the default; however, some
  1226. people prefer to see the Gnus scores plus the grouplens scores.  To get
  1227. the separate scoring behavior you need to set
  1228. `gnus-grouplens-override-scoring' to `'separate'.  To have the
  1229. GroupLens predictions combined with the grouplens scores set it to
  1230. `'override' and to combine the scores set
  1231. `gnus-grouplens-override-scoring' to `'combine'.  When you use the
  1232. combine option you will also want to set the values for
  1233. `grouplens-prediction-offset' and `grouplens-score-scale-factor'.
  1234.  
  1235.    In either case, GroupLens gives you a few choices for how you would
  1236. like to see your predictions displayed.  The display of predictions is
  1237. controlled by the `grouplens-prediction-display' variable.
  1238.  
  1239.    The following are legal values for that variable.
  1240.  
  1241. `prediction-spot'
  1242.      The higher the prediction, the further to the right an `*' is
  1243.      displayed.
  1244.  
  1245. `confidence-interval'
  1246.      A numeric confidence interval.
  1247.  
  1248. `prediction-bar'
  1249.      The higher the prediction, the longer the bar.
  1250.  
  1251. `confidence-bar'
  1252.      Numerical confidence.
  1253.  
  1254. `confidence-spot'
  1255.      The spot gets bigger with more confidence.
  1256.  
  1257. `prediction-num'
  1258.      Plain-old numeric value.
  1259.  
  1260. `confidence-plus-minus'
  1261.      Prediction +/i confidence.
  1262.  
  1263. 
  1264. File: gnus,  Node: GroupLens Variables,  Prev: Displaying Predictions,  Up: GroupLens
  1265.  
  1266. GroupLens Variables
  1267. -------------------
  1268.  
  1269. `gnus-summary-grouplens-line-format'
  1270.      The summary line format used in summary buffers that are GroupLens
  1271.      enhanced.  It accepts the same specs as the normal summary line
  1272.      format (*note Summary Buffer Lines::.).  The default is
  1273.      `%U%R%z%l%I%(%[%4L: %-20,20n%]%) %s\n'.
  1274.  
  1275. `grouplens-bbb-host'
  1276.      Host running the bbbd server.  The default is
  1277.      `grouplens.cs.umn.edu'.
  1278.  
  1279. `grouplens-bbb-port'
  1280.      Port of the host running the bbbd server.  The default is 9000.
  1281.  
  1282. `grouplens-score-offset'
  1283.      Offset the prediction by this value.  In other words, subtract the
  1284.      prediction value by this number to arrive at the effective score.
  1285.      The default is 0.
  1286.  
  1287. `grouplens-score-scale-factor'
  1288.      This variable allows the user to magnify the effect of GroupLens
  1289.      scores.  The scale factor is applied after the offset.  The
  1290.      default is 1.
  1291.  
  1292. 
  1293. File: gnus,  Node: Various,  Next: The End,  Prev: Scoring,  Up: Top
  1294.  
  1295. Various
  1296. *******
  1297.  
  1298. * Menu:
  1299.  
  1300. * Process/Prefix::             A convention used by many treatment commands.
  1301. * Interactive::                Making Gnus ask you many questions.
  1302. * Formatting Variables::       You can specify what buffers should look like.
  1303. * Windows Configuration::      Configuring the Gnus buffer windows.
  1304. * Compilation::                How to speed Gnus up.
  1305. * Mode Lines::                 Displaying information in the mode lines.
  1306. * Highlighting and Menus::     Making buffers look all nice and cozy.
  1307. * Buttons::                    Get tendonitis in ten easy steps!
  1308. * Daemons::                    Gnus can do things behind your back.
  1309. * NoCeM::                      How to avoid spam and other fatty foods.
  1310. * Picons::                     How to display pictures of what your reading.
  1311. * Various Various::            Things that are really various.
  1312.  
  1313.